package com.yanyuhao.service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yanyuhao.entity.Admin;
import com.yanyuhao.exception.CustomerException;
import com.yanyuhao.mapper.AdminMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;


import java.util.List;

//业务层
@Service
public class AdminService {

    //连接mapper
    @Resource
    AdminMapper adminMapper;

    //业务层方法实现的是业务逻辑，比如判断、查询列表、组合数据等，它可能调用 Mapper 去操作数据库，但不直接操作表
    //Mapper 只负责 SQL 和数据库操作，Service 才是真正处理业务逻辑的地方，比如筛选、判断、加工数据等
    public String admin(String name){
        if(name.equals("admin")){
            return "admin";
        }
        else {
            throw new CustomerException("账号错误");
        }
    }

    public List<Admin> selectAll(){

        return adminMapper.selectAll();
    }


    //专门用来控制数据展示的量，避免一次性加载太多数据导致卡顿
    public PageInfo<Admin> selectPage(Integer pageNum, Integer pageSize) {
        //开启分页查询
        //告诉数据库：「我要看第pageNum页，每页pageSize条」
        PageHelper.startPage(pageNum, pageSize);
        //执行 SQL
        List<Admin> list = adminMapper.selectAll();
        //封装结果自动计算总记录数（比如总共有100条），生成分页信息
        return PageInfo.of(list);

    }
}
